package com.sunlake.spring.main.model.auth.controller;

import com.sunlake.spring.main.common.response.R;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/users")
public class UserController {

    // 所有认证用户都可以访问
    @GetMapping("/profile")
    public R getUserProfile() {
        // 获取当前登录用户信息
        Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        return R.ok(200, "获取用户信息成功", principal);
    }

    // 只有管理员可以访问
    @PreAuthorize("hasRole('ADMIN')")
    @GetMapping("/all")
    public R getAllUsers() {
        // TODO: 实现获取所有用户列表的逻辑
        return R.ok(200, "获取用户列表成功");
    }

    // 顾问和管理员可以访问
    @PreAuthorize("hasAnyRole('COUNSELOR', 'ADMIN')")
    @GetMapping("/counseling")
    public R getCounselingCases() {
        // TODO: 实现获取咨询案例的逻辑
        return R.ok(200, "获取咨询案例成功");
    }
}